首页> 外文OA文献 >From Operational Semantics to Abstract Machines: Preliminary Results
【2h】

From Operational Semantics to Abstract Machines: Preliminary Results

机译:从操作语义学到抽象机器:初步结果

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

The operational semantics of functional programming languages is frequently presented using inference rules within simple meta-logics. Such presentations of semantics can be high-level and perspicuous since meta-logics often handle numerous syntactic details in a declarative fashion. This is particularly true of the meta-logic we consider here, which includes simply typed λ-terms, quantification at higher types, and β-conversion. Evaluation of functional programming languages is also often presented using low-level descriptions based on abstract machines: simple term rewriting systems in which few high-level features are present. In this paper, we illustrate how a high-level description of evaluation using inference rules can be systematically transformed into a low-level abstract machine by removing dependencies on high-level features of the meta-logic until the resulting inference rules are so simple that they can be immediately identified as specifying an abstract machine. In particular, we present in detail the transformation of two inference rules specifying call-by-name evaluation of the untyped λ-calculus into the Krivine machine, a stack-based abstract machine that implements such evaluation. The initial specification uses the meta-logic\u27s β-conversion to perform substitutions. The resulting machine uses de Bruijn numerals and closures instead of formal substitution. We also comment on a similar construction of a simplified SECD machine implementing call-by-value evaluation. This approach to abstract machine construction provides a semantics directed method for motivating, proving correct, and extending such abstract machines.
机译:在简单的元逻辑中,经常使用推理规则来介绍功能性编程语言的操作语义。由于元逻辑通常以声明方式处理大量的语法细节,因此语义的这种表示可能是高级的和明显的。对于我们在这里考虑的元逻辑,尤其如此,其中包括简单键入的λ项,高级类型的量化和β转换。功能编程语言的评估通常也使用基于抽象机器的低级描述来表示:简单术语重写系统,其中几乎没有高级功能。在本文中,我们说明了如何通过消除对元逻辑高级特征的依赖,直到得出的推理规则如此简单,以至于可以将使用推理规则的评估的高级描述系统地转换为低级抽象机器。可以立即将它们标识为指定抽象机。特别是,我们详细介绍了两个推理规则的转换,这些规则将指定无类型λ演算的按名称进行调用的评估转换为Krivine机器,该机器是实现此类评估的基于堆栈的抽象机器。初始规范使用元逻辑的β转换执行替换。生成的机器使用de Bruijn数字和闭包代替形式替换。我们还评论了简化的SECD机器的类似结构,该机器实现了按值打电话的评估。这种抽象机构造方法为激励,证明正确和扩展这种抽象机提供了一种语义指导的方法。

著录项

  • 作者

    Hannan, John; Miller, Dale;

  • 作者单位
  • 年度 1990
  • 总页数
  • 原文格式 PDF
  • 正文语种
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号